Important: kernel security and bug fix update

Synopsis

Important: kernel security and bug fix update

Type/Severity

Security Advisory: Important

Topic

Updated kernel packages that resolve several security issues and fix
various bugs are now available for Red Hat Enterprise Linux 5.

This update has been rated as having important security impact by the Red
Hat Security Response Team.

[Updated 12th November 2008]
The original packages distributed with this errata had a bug which
prevented the Xen kernel booting on older hardware. We have updated the
packages to correct this bug.

Description

The kernel packages contain the Linux kernel, the core of any Linux
operating system.

  • the Xen implementation did not prevent applications running in a
    para-virtualized guest from modifying CR4 TSC. This could cause a local
    denial of service. (CVE-2007-5907, Important)
  • Tavis Ormandy reported missing boundary checks in the Virtual Dynamic
    Shared Objects (vDSO) implementation. This could allow a local unprivileged
    user to cause a denial of service or escalate privileges. (CVE-2008-3527,
    Important)
  • the do_truncate() and generic_file_splice_write() functions did not clear
    the setuid and setgid bits. This could allow a local unprivileged user to
    obtain access to privileged information. (CVE-2008-4210, CVE-2008-3833,
    Important)
  • a flaw was found in the Linux kernel splice implementation. This could
    cause a local denial of service when there is a certain failure in the
    add_to_page_cache_lru() function. (CVE-2008-4302, Important)
  • a flaw was found in the Linux kernel when running on AMD64 systems.
    During a context switch, EFLAGS were being neither saved nor restored. This
    could allow a local unprivileged user to cause a denial of service.
    (CVE-2006-5755, Low)
  • a flaw was found in the Linux kernel virtual memory implementation. This
    could allow a local unprivileged user to cause a denial of service.
    (CVE-2008-2372, Low)
  • an integer overflow was discovered in the Linux kernel Datagram
    Congestion Control Protocol (DCCP) implementation. This could allow a
    remote attacker to cause a denial of service. By default, remote DCCP is
    blocked by SELinux. (CVE-2008-3276, Low)

In addition, these updated packages fix the following bugs:

  • random32() seeding has been improved.
  • in a multi-core environment, a race between the QP async event-handler
    and the destro_qp() function could occur. This led to unpredictable results
    during invalid memory access, which could lead to a kernel crash.
  • a format string was omitted in the call to the request_module() function.
  • a stack overflow caused by an infinite recursion bug in the binfmt_misc
    kernel module was corrected.
  • the ata_scsi_rbuf_get() and ata_scsi_rbuf_put() functions now check for
    scatterlist usage before calling kmap_atomic().
  • a sentinel NUL byte was added to the device_write() function to ensure
    that lspace.name is NUL-terminated.
  • in the character device driver, a range_is_allowed() check was added to
    the read_mem() and write_mem() functions. It was possible for an
    illegitimate application to bypass these checks, and access /dev/mem beyond
    the 1M limit by calling mmap_mem() instead. Also, the parameters of
    range_is_allowed() were changed to cleanly handle greater than 32-bits of
    physical address on 32-bit architectures.
  • some of the newer Nehalem-based systems declare their CPU DSDT entries as
    type "Alias". During boot, this caused an "Error attaching device data"
    message to be logged.
  • the evtchn event channel device lacked locks and memory barriers. This
    has led to xenstore becoming unresponsive on the Itanium(r) architecture.
  • sending of gratuitous ARP packets in the Xen frontend network driver is
    now delayed until the backend signals that its carrier status has been
    processed by the stack.
  • on forcedeth devices, whenever setting ethtool parameters for link speed,
    the device could stop receiving interrupts.
  • the CIFS 'forcedirectio' option did not allow text to be appended to files.
  • the gettimeofday() function returned a backwards time on Intel(r) 64.
  • residual-count corrections during UNDERRUN handling were added to the
    qla2xxx driver.
  • the fix for a small quirk was removed for certain Adaptec controllers for
    which it caused problems.
  • the "xm trigger init" command caused a domain panic if a userland
    application was running on a guest on the Intel(r) 64 architecture.

Users of kernel should upgrade to these updated packages, which contain
backported patches to correct these issues.

Solution

Before applying this update, make sure that all previously-released
errata relevant to your system have been applied.

This update is available via Red Hat Network. Details on how to use
the Red Hat Network to apply this update are available at
http://kbase.redhat.com/faq/FAQ_58_10188

Affected Products

  • Red Hat Enterprise Linux Server 5 x86_64
  • Red Hat Enterprise Linux Server 5 ia64
  • Red Hat Enterprise Linux Server 5 i386
  • Red Hat Enterprise Linux Server - Extended Update Support 5.2 x86_64
  • Red Hat Enterprise Linux Server - Extended Update Support 5.2 ia64
  • Red Hat Enterprise Linux Server - Extended Update Support 5.2 i386
  • Red Hat Enterprise Linux Workstation 5 x86_64
  • Red Hat Enterprise Linux Workstation 5 i386
  • Red Hat Enterprise Linux Desktop 5 x86_64
  • Red Hat Enterprise Linux Desktop 5 i386
  • Red Hat Enterprise Linux for IBM z Systems 5 s390x
  • Red Hat Enterprise Linux for IBM z Systems - Extended Update Support 5.2 s390x
  • Red Hat Enterprise Linux for Power, big endian 5 ppc
  • Red Hat Enterprise Linux for Power, big endian - Extended Update Support 5.2 ppc
  • Red Hat Enterprise Linux Server from RHUI 5 x86_64
  • Red Hat Enterprise Linux Server from RHUI 5 i386

Fixes

  • BZ - 377561 - CVE-2007-5907 kernel-xen 3.1.1 does not prevent modification of the CR4 TSC from applications (DoS possible)
  • BZ - 452666 - CVE-2008-2372 kernel: Reinstate ZERO_PAGE optimization in 'get_user_pages()' and fix XIP
  • BZ - 457718 - CVE-2006-5755 kernel: local denial of service due to NT bit leakage
  • BZ - 458021 - kernel: random32: seeding improvement [rhel-5.2.z]
  • BZ - 458759 - kernel: dlm: dlm/user.c input validation fixes [rhel-5.2.z]
  • BZ - 458781 - LTC44618-Race possibility between QP async handler and destroy_qp()
  • BZ - 459226 - CVE-2008-3276 Linux kernel dccp_setsockopt_change() integer overflow
  • BZ - 459461 - kernel: cpufreq: fix format string bug [rhel-5.2.z]
  • BZ - 459464 - kernel: binfmt_misc.c: avoid potential kernel stack overflow [rhel-5.2.z]
  • BZ - 460251 - CVE-2008-3527 kernel: missing boundary checks in syscall/syscall32_nopage()
  • BZ - 460638 - [REG][5.3] The system crashed by the NULL pointer access with kmap_atomic() of ata_scsi_rbuf_get().
  • BZ - 460858 - kernel: devmem: add range_is_allowed() check to mmap_mem() [rhel-5.2.z]
  • BZ - 460868 - RHEL5.2 ACPI core bug
  • BZ - 461099 - evtchn device lacks lock and barriers
  • BZ - 461457 - Coordinate gratuitous ARP with backend network status
  • BZ - 461894 - nVidia MCP55 MCP55 Ethernet (rev a3) not functional on kernel 2.6.18-53.1.4
  • BZ - 462434 - CVE-2008-4302 kernel: splice: fix bad unlock_page() in error case
  • BZ - 462591 - CIFS option forcedirectio fails to allow the appending of text to files.
  • BZ - 462860 - RHEL5.3: Fix time of gettimeofday() going backward (EM64T) (*)
  • BZ - 463661 - CVE-2008-4210 kernel: open() call allows setgid bit when user is not in new file's group
  • BZ - 464450 - CVE-2008-3833 kernel: remove SUID when splicing into an inode
  • BZ - 465741 - [QLogic 5.2.z bug] qla2xxx - Additional residual-count corrections during UNDERRUN handling.
  • BZ - 466427 - Significant regression in time() performance
  • BZ - 466885 - [aacraid 5.2.z] aac_srb: aac_fib_send failed with status 8195
  • BZ - 467105 - xm trigger <domain> init causes kernel panic.

CVEs

References